package com.ruoyi.fun.service;

import java.util.List;
import com.ruoyi.fun.domain.EcProductSku;

/**
 * 商品SKUService接口
 * 
 * @author ruoyi
 * @date 2025-08-06
 */
public interface IEcProductSkuService 
{
    /**
     * 查询商品SKU
     * 
     * @param skuId 商品SKU主键
     * @return 商品SKU
     */
    public EcProductSku selectEcProductSkuBySkuId(Long skuId);

    /**
     * 查询商品SKU列表
     * 
     * @param ecProductSku 商品SKU
     * @return 商品SKU集合
     */
    public List<EcProductSku> selectEcProductSkuList(EcProductSku ecProductSku);

    /**
     * 新增商品SKU
     * 
     * @param ecProductSku 商品SKU
     * @return 结果
     */
    public int insertEcProductSku(EcProductSku ecProductSku);

    /**
     * 修改商品SKU
     * 
     * @param ecProductSku 商品SKU
     * @return 结果
     */
    public int updateEcProductSku(EcProductSku ecProductSku);

    /**
     * 批量删除商品SKU
     * 
     * @param skuIds 需要删除的商品SKU主键集合
     * @return 结果
     */
    public int deleteEcProductSkuBySkuIds(Long[] skuIds);

    /**
     * 删除商品SKU信息
     * 
     * @param skuId 商品SKU主键
     * @return 结果
     */
    public int deleteEcProductSkuBySkuId(Long skuId);

    /**
     * 根据skuId和组织ID查询ProductSku
     * 
     * @param skuId ProductSku主键
     * @param orgId 组织ID
     * @return ProductSku
     */
    public EcProductSku selectEcProductSkuBySkuIdAndOrgId(Long skuId, Long orgId);

    /**
     * 根据组织ID查询ProductSku列表
     * 
     * @param ecproductsku ProductSku
     * @param orgId 组织ID
     * @return ProductSku集合
     */
    public List<EcProductSku> selectEcProductSkuListByOrgId(EcProductSku ecproductsku, Long orgId);

    /**
     * 导入商品SKU数据
     * 
     * @param skuList 商品SKU数据列表
     * @param isUpdateSupport 是否更新支持，如果已存在，则进行更新数据
     * @param operName 操作用户
     * @param orgId 组织ID
     * @return 结果
     */
    public String importSku(List<EcProductSku> skuList, Boolean isUpdateSupport, String operName, Long orgId);

    /**
     * 更新SKU销量
     * 
     * @param skuId SKU ID
     * @param increment 增量（默认为1）
     * @param orgId 组织ID
     * @return 结果
     */
    public int updateSkuSaleCount(Long skuId, int increment, Long orgId);

    /**
     * 更新SKU库存
     * 
     * @param skuId SKU ID
     * @param increment 库存增量（正数增加，负数减少）
     * @param orgId 组织ID
     * @return 结果
     */
    public int updateSkuStock(Long skuId, Long increment, Long orgId);
}
